package com.houweishi.module.leave.service;

import com.houweishi.common.core.domain.AjaxResult;
import com.houweishi.module.leave.domain.OaLeave;
import com.houweishi.module.leave.domain.OaLeaveApproval;

import java.util.List;

/**
 * 请假管理Service接口
 * 
 * @author houweishi
 * @date 2023-02-21
 */
public interface IOaLeaveService 
{
    /**
     * 查询请假管理
     * 
     * @param id 请假管理主键
     * @return 请假管理
     */
    public OaLeave selectOaLeaveById(Long id);

    /**
     * 查询请假管理列表
     * 
     * @param oaLeave 请假管理
     * @return 请假管理集合
     */
    public List<OaLeave> selectOaLeaveList(OaLeave oaLeave);

    /**
     * 新增请假管理
     * 
     * @param oaLeave 请假管理
     * @return 结果
     */
    AjaxResult insertOaLeave(OaLeave oaLeave);

    /**
     * 修改请假管理
     * 
     * @param oaLeave 请假管理
     * @return 结果
     */
    public int updateOaLeave(OaLeave oaLeave);

    /**
     * 批量删除请假管理
     * 
     * @param ids 需要删除的请假管理主键集合
     * @return 结果
     */
    public int deleteOaLeaveByIds(Long[] ids);

    /**
     * 删除请假管理信息
     * 
     * @param id 请假管理主键
     * @return 结果
     */
    public int deleteOaLeaveById(Long id);

    /**
     * 查询请假管理列表（含业务表状态）
     * @param oaLeave
     * @return
     */
    List<OaLeaveApproval> selectOaLeaveApprovalList(OaLeaveApproval oaLeave);
}
